Ma méthode pour les intégrations externes : Claude Code web, sans IDE ni dev en local

Bonjour à tous,

Suite à la remarque de @pierre-gilles, beaucoup n’ont pas encore vu à quel point Claude rend le développement simple. Voici comment je fais mes intégrations externes et comment je corrige vos bugs, souvent dans la journée :wrench:

Petit détail qui a son importance : à la base, je ne suis pas développeur. Si j’y arrive, vous pouvez y arriver aussi :wink:


Ce dont je n’ai pas besoin

Tout ce qu’un développeur utilise d’habitude, je ne m’en sers pas :

  • Pas de dev en local
  • Pas d’IDE
  • Pas de Node ni de Docker à installer sur mon poste
  • Pas de commit à la main

C’est justement ce que @pierre-gilles soulignait : beaucoup de développeurs travaillent encore comme ça, alors que ce n’est plus obligatoire.

Ce que je fais à la place

  • Je décris le besoin en français, avec des mots simples
  • Claude Code web fait tout le reste sur le dépôt GitHub : le code, la pull request, la fusion et la release
  • Il me prépare aussi la réponse à poster sur le forum
  • Moi, je suis les retours et je teste quand j’ai l’appareil

Ça marche aussi depuis le téléphone, et je peux lancer plusieurs corrections en même temps.


Les bases communes à mes 24 dépôts

  • Vérification du manifest à chaque pull request, avec les mêmes contrôles que le store
  • Tests automatiques sur Node 22 et 24, lint et format
  • Construction de l’image Docker
  • Dependabot pour les mises à jour
  • Une Release GitHub par version, avec son changelog
  • Doc en français et en anglais

Résultat : une erreur est repérée avant d’arriver dans le store.


Comment je démarre une intégration

En attendant le prochain SDK, je donne ce message à Claude Code web, sur un dépôt GitHub vide :

Dans ce repo, sur la branche main, je veux que tu crées une intégration externe "Dyson".
Pars du template d'intégration officiel : https://github.com/GladysAssistant/integration-template-js
N'oublie pas SECURITY.md, CHANGELOG.md et CLAUDE.md
N'oublie pas le tag cloud et/ou local
Mets en place les mêmes workflows que https://github.com/prohand/gladys-devmel
N'oublie pas les widgets, les déclencheurs et les actions de scène

Pourquoi chaque ligne :

  • Le template officiel : la structure attendue par Gladys est respectée dès le départ
  • SECURITY.md : explique comment signaler une faille
  • CHANGELOG.md : garde la trace de chaque version
  • CLAUDE.md : les règles du projet pour Claude, relues à chaque nouvelle session
  • Tag cloud / local : indique dans le store si l’intégration a besoin d’Internet
  • Les workflows de gladys-devmel : tests, contrôles du store, image Docker et releases, déjà prêts
  • Widgets, déclencheurs, scènes : sinon Claude se limite souvent aux appareils

Il suffit de remplacer « Dyson » par votre intégration.


Un bug, de A à Z (exemple réel avec Dyson)

1. Vous postez un retour

@mutmut a testé l’intégration Dyson et posté un retour détaillé, avec captures :

2. Je donne le message à Claude Code web

Je colle le lien du message du forum, sur le bon dépôt, et je lui demande de tout faire : la correction, la pull request, la fusion et la release.

Claude lit le retour, cherche la cause dans le code, corrige, ajoute les tests, met à jour la doc et le changelog.

3. Claude ouvre une pull request

Chaque retour du forum devient une pull request. Le titre dit à quel message elle répond.

Dans la pull request, Claude explique ce qui est corrigé, ce qui change et ce qui est ajouté. Il indique aussi ce qui n’a pas pu être testé sur un vrai appareil.

On voit par exemple qu’il a trouvé pourquoi les valeurs PM étaient différentes de Matter : l’intégration lisait la mauvaise série de mesures du Dyson.

4. Les contrôles automatiques passent

Tests, lint, contrôles du store, image Docker : tout est vérifié sur la pull request, puis après la fusion.

Ce sont ces contrôles qui me permettent de laisser Claude aller jusqu’au bout tout seul.

5. Claude fusionne et publie la version

Il fusionne la pull request et lance la release : la Release GitHub, son changelog et l’image Docker sont publiés. La nouvelle version arrive dans le store.

6. Claude prépare la réponse du forum

Je lui demande une réponse pour le forum, et je n’ai plus qu’à la coller. Elle dit ce qui est corrigé, pourquoi, et quoi faire après la mise à jour.

Toutes mes réponses sur le sujet Dyson ont été faites comme ça.


Le résultat sur Dyson

  • 1.0.0 le 10 octobre au soir, 1.4.0 le 11 au soir
  • 5 pull requests, une par retour de @mutmut
  • Corrigé en route : bouton « Mettre à jour » absent, valeurs PM fausses, IP locale ignorée, widget en retard, noms en anglais…
  • Et je n’ai pas de Dyson chez moi :sweat_smile:

Les limites

  • Claude peut se tromper : d’où les contrôles automatiques… et vos tests
  • Sans l’appareil, je me base sur ce qu’il envoie : vos retours valent de l’or
  • Certains soucis viennent du cœur de Gladys. Dans ce cas, je propose un correctif à Gladys (ex. : PR #3188 pour les couleurs des tuiles)

Pour vous lancer (développeur ou pas)

  • Créez un dépôt GitHub vide, ouvrez Claude Code web et reliez votre compte GitHub
  • Donnez-lui le message de départ ci-dessus, avec le nom de votre intégration
  • Commencez petit : une intégration simple, puis un bug, une traduction, un test
  • Mettez en place les contrôles automatiques avant de laisser Claude fusionner tout seul : c’est votre filet de sécurité
  • Au début, relisez les pull requests pour comprendre ce que fait Claude

Comment m’aider (testeurs)

  • Un sujet par intégration sur le forum, ou une issue GitHub
  • Indiquez : modèle, version de l’intégration, local ou cloud
  • Ajoutez des captures et les logs, sans e-mail, IP ni numéro de série

Plus votre retour est précis, plus la correction est rapide. Merci à tous les testeurs, et à @mutmut en particulier :folded_hands:

Trop bien merci du partage !! :smiley:

C’est très bien expliqué ! Merci @prohand

Pour ma part, je suis encore plus feignant … et je demande à Claude des choses en plus.
Dans ce cadre là, j’utilise claude sur un mini-PC que j’ai chez moi (le même sur lequel j’ai Frigate qui gère mes cameras).

L’avantage de l´utiliser sur ce mini-pc comparé aux sessions cloud, c’est qu’il a accès à bien plus de choses.
Je lui ai donc donné accès à mon compte sur le forum, ce qui fait que de mon coté :

  • il lit tous les jours les messages dans les threads de mes intégrations externes
  • s’il y a de nouveaux messages il les analyse, il code les corrections si besoin, il publie une release et une fois que tous les tests sont au vert, il publie un message sur le forum pour vous informer.

De la même manière, je lui ai donné accès à mon repo github pour qu’il puisse créer lui même ce dont il a besoin.
Donc si je demande à Claude : « crée une intégration Vigilance pluies acides » il va aller vérifier que personne n’ait annoncé s’en occuper sur le forum, récupérer tout ce dont il a besoin, créer l’intégration et écrire un sujet sur le forum… Sans moi.

Flemme totale :wink:

@guim31 Tu peux faire tout ça dans des sessions Cloud aussi !

Je ne pensais pas (ou alors il faut lui autoriser les domaines non ?).
De toute façon je me sers beaucoup de celui sur mon mini-PC car il peut gérer tous mes équipements à la maison :wink:

Oui il faut autoriser tous les domaines, ça c’est vital même pour développer, sinon il ne peut pas accéder aux documentations, etc…

Je l’ai mis par défaut dans l’orga Gladys Assistant Anthropic :slight_smile:

Tu peux vérifier ici :

Merci pour le partage ! Top

@pierre-gilles Je viens d’avoir une idée « folle » qui serait la prochaine étape : créer le « Lovable » de Gladys :grinning_face_with_smiling_eyes: (genre, studio.gladysassistant.com).Un utilisateur lambda ne trouve pas son intégration dans le store ? Il décrit son besoin, l’outil l’aide à la créer, la tester puis la publier, sans compte GitHub, ni Claude.
Avec un mode « plan » pour l’aider à préciser son idée avant de lancer la création.

On pourrait explorer un siège Claude via le programme startup, si les conditions le permettent, avec du rate limiting bien sûr. L’idée : rendre la création d’intégrations accessible directement depuis Gladys à n’importe qui !

EDIT : ou réservé aux utilisateurs Gladys Plus

Merci pour le partage de ta méthode @prohand. Est-ce que cela nécessite un compte Claude payant, ou ça peut fonctionner aussi avec un simple compte gratuit ? ce serait sans doute avec une limite en nombre de jeton qui va faire que c’est moins rapide, mais je ne suis pas pressé pour l’idée d’extension que j’ai…

Oui il faut un compte claude payant afin de pouvoir utiliser claude code
Au début j’ai utilisé le pro en 20€ mois
Maintenant j’utilise un siège team Premium graçe à @pierre-gilles qui a pu en avoir graçe à une offre de claude

@prohand : Super explication, c’est ce qui me manquait. Je viens d’un autre monde. Ces dernières années, j’étais assis à ma table et je soudais des puces ESP32, auxquelles j’ai appris péniblement Matter over Thread et que j’ai ensuite utilisées chez moi. (Quelles bêtises on ne fait pas quand les puces démangent :slight_smile:

Donc j’ai pris une décision : je vais essayer, car il ne peut pas en être ainsi que nous obtenions les horaires de transport de chaque grande ville canadienne, mais que nous ne puissions même pas obtenir un train de Francfort à Hambourg :wink:

C’est-à-dire que je vais tenter quelque chose pour l’espace germanophone, donc en s’inspirant des transports canadiens, la même chose pour l’Allemagne, la Suisse et l’Autriche.

Je regrette également le service météorologique allemand et le ministère fédéral de l’Environnement, qui fournissent des informations détaillées (parfois jusqu’au niveau communal) sur la pollution de l’air et les pollens. Je m’occuperais également de cela pour l’Allemagne, la Suisse et l’Autriche.

Mais tout cela très petit au début et j’ai constaté qu’en cas de problème, toute la communauté ici vous tend la main.

À mon premier essai,

Salutations

Tom

Oui, y’a pas de souci, lance-toi et si besoin il y aura toujours quelqu’un pour t’aider.

Et si tu as des idées d’intégration que tu veux, mets le nom et quelqu’un pourra s’en occuper aussi. On a 2 personnes, @prohand et @guim31, qui vont trop vite, on arrive plus à les suivre.

Hello Tom,

Si jamais j’ai une intégration pour les transports publics Suisse qui devrait arriver aujourd’hui :wink: Elle est déjà prête.

A+