English

Coder sans coder

Claude code, mais c'est toujours moi qui transpire

Des idées qui traînent

Ça fait des années que j’ai des side projects qui ne voient jamais le jour.

Des idées griffonnées quelque part. Des repos GitHub créés un dimanche soir, abandonnés le lundi. Pas le temps, pas l’énergie, pas toutes les compétences aussi, faut pas se mentir. La vie passe, le boulot, les enfants, et les idées restent des idées.

Celle-là, elle traînait depuis un moment: quelque chose pour analyser mes sorties running. Quelque chose de personnel, un coach, de la donnée, beaucoup de données.

RunSloth

Oui, c’est un paresseux, qui court.

Et pour un paresseux, il fait pas mal de choses. Il se synchronise avec Strava, analyse mes performances, construit des plans d’entraînement, et me donne du feedback sur chaque sortie.

Le dashboard: des stats !

Ça, c’est pour le dashboard. L’application est aussi connectée via un serveur MCP à un LLM (Claude dans mon cas). Après une sortie, je lui dis: “Hey coach, j’ai fait ma sortie du jour, tu peux synchro ? Ressenti: plutôt bon malgré rythme plus rapide que prévu.”

Et la magie opère. Il synchronise. Analyse mes splits. Compare à ce qui était prévu. Me fait un feedback…

Puis il lie l’activité au plan et me projette sur la prochaine sortie.

Je demande une synchro, il récupère ma sortie et commence l'analyse
Analyse split par split, feedback personnalisé, projection sur la suite

Ce qui est vraiment chouette

Le vrai plaisir, ce n’est pas que ça fait plus qu’une autre app, et c’est même pas le point de départ de la chose.

Non, c’est que c’est mon truc.

Si je me projette, je fais souvent des sorties “hors plan”. Prenons un dimanche de printemps. Il fait beau. Le soleil m’appelle. Je saute sur ma selle et je fais le tour du lac d’Annecy. Pas prévu. Pas dans le plan.

Là, j’ai juste à dire: “C’était pas prévu, mais j’ai fait ça. Tu peux ajuster le plan en fonction ?”

Ça s’ajuste.

Si demain je veux que l’outil me propose des recettes de saison pour les veilles de course, je peux. Si je veux changer la façon dont il analyse mes sorties, je peux. C’est mon outil, je le façonne comme je veux.

Et surtout, j’apprends. À chaque feature ajoutée, je comprends mieux comment interagir avec l’IA, les skills, les limites, les contournements. C’est un terrain de jeu.

Le plan d'entraînement: chaque session est là, modifiable, adaptable
Session prévue dans le plan d'entraînement

Zéro ligne de code

Je n’ai pas écrit une seule ligne.

Pas une. Zéro.

Le projet fait tourner un serveur MCP, une base PostgreSQL, une API REST, un dashboard Vue.js avec des graphiques de fitness avancés, un calendrier de plan d’entraînement… Et je n’ai pas codé.

J’ai spécifié. Itéré. Orienté. Corrigé.

Comment ça marche

Une session type, ça ressemble à ça:

Je lance Claude Code. Je décris ce que je veux, en gros, pas en détail technique. On brainstorme ensemble une dizaine de minutes. La structure, les cas limites, les choix d’architecture.

Puis il part coder.

15 minutes. 20 parfois. Je fais autre chose. Je vérifie de temps en temps s’il a fini.

Une fois terminé, je teste. Je fais mes retours. “Ça marche pas quand je fais ça”, “Le drawer ne se ferme pas”, “L’allure est en min/km, pas en km/h pour le vélo”. Il corrige. Problème suivant.

Une grosse feature, ça me prend 1h à 1h30 avec tous les allers-retours. Parfois je suis bloqué par la limite de tokens, Claude Pro, donc des pauses forcées de 5h. Je continue à la session d’après.

Modification possible d'une activité, synchro avec Strava
Liste des activités avec filtres par type, date et tri

Les skills

J’ai mis en place pour la première fois les skills en faisant ce projet.

  • brainstorming m’a aidé à structurer le projet dès le départ.
  • mcp-builder m’a évité de me casser les dents comme la dernière fois que j’avais essayé de faire un serveur MCP.
  • subagent-driven-development permet de s’attaquer aux grosses features à plusieurs. Des sous agents qui avancent sur des tâches indépendantes.
  • Et frontend-design… Toute l’interface, c’est du premier coup. J’ai donné le nom, l’ambiance. Et paf 🪄

Ça permet d’avoir des capacités renforcées, sur un projet en particulier, ou sur tous. On les utilise au besoin.

C’est de l’outillage de précision.

Le fichier CLAUDE.md

C’est le cœur.

Un fichier markdown à la racine du projet. C’est le niveau zéro du contexte. Architecture, fonctionnalités, conventions. Quand Claude reprend le projet après une pause, il repart de là.

Le garder à jour, l’organiser, découper en plusieurs fichiers par fonctionnalités, c’est ma responsabilité. C’est un peu comme documenter, mais pour une IA.

C’est la mémoire.

Le prompt du coach

L’ultime pièce du puzzle, c’est le prompt qui fait du LLM un coach running.

Un fichier markdown avec les règles: la méthodologie pour les entraînements (Jack Daniels dans mon cas), les workflows recommandés (comment analyser une séance, comment faire un point hebdo…), les outils MCP disponibles (récupérer les activités, créer un plan…) et quand les utiliser.

C’est ce qui fait que quand je dis “Hey coach”, il ne répond pas comme un assistant générique. Il sait qu’il doit regarder mes allures cibles, comparer à ma FC, contextualiser par rapport à ma semaine d’entraînement.

C’est la personnalité.

Détails d'activité, GPS, courbes, laps, analyse de la session...

Est-ce que je me sens développeur ?

Oui et non.

Je sens que dans certains cas, si je ne donne pas un coup de main, si je n’oriente pas la recherche d’un bug, l’IA pourrait tourner en boucle. Chercher au mauvais endroit. Ajouter des trucs inutiles dans tous les sens.

Et en même temps, ça va tellement vite. Ça fait les choses certainement mieux que moi. On se sent forcément un peu soufflé par ça.

Mais au fond, ce que j’ai fait sur ce projet, c’est ce que j’ai toujours préféré faire: réfléchir aux problèmes à résoudre. Pas les implémenter, les penser.

Le vrai plaisir

Pas de moment “wow” unique. Juste une succession de trucs cools.

Au début, je voulais juste synchroniser mes activités Strava et les envoyer à un LLM. Puis comme c’est allé vite, j’ai ajouté le serveur MCP pour ne pas avoir à exporter. Puis comme c’est allé vite, j’ai ajouté la gestion du plan directement. Puis le dashboard. Puis les stats de fitness. Puis…

La boucle est tellement rapide qu’on se laisse porter. Tu avais prévu un export JSON, tu finis avec un produit complet.

Et surtout, SURTOUT, j’ai terminé un side project.

Pour une fois.

Ça fait des années que j’ai des idées qui moisissent. Là, en une semaine, j’ai un truc qui marche. Que j’utilise.

C’est con à dire, mais: ça fait plaisir de se faire plaisir.

J’ai pris mon pied. C’est hyper grisant.

Et maintenant, faut que j’aille courir. Parce que ça, l’IA peut pas le faire à ma place 👟