Aller au contenu

Une stack d’infrastructure de contexte pour Claude

Alors, j’ai fait quoi aujourd’hui ? À part du data mining pour le plaisir ?

Eh bien, j’ai fini d’écrire ma stack d’infrastructure de contexte pour Claude 3.5. Ça fait des trucs comme construire des représentations d’arborescences de fichiers, et ça suit la complexité cognitive et la tokenisation des données. L’idée est vraiment cool.

Voyez-vous, Claude est un excellent codeur, mais Anthropic n’a pas conçu le système pour bâtir de grosses applis. Honnêtement, le système n’est pas très bien foutu, et je pense pouvoir faire mieux. Mais c’est le meilleur outil qu’on ait pour le workflow que j’aime, et ça booste ma productivité.

Pour régler certains problèmes de maintien du contexte, je me suis rabattue sur une méthodologie produit très formelle. Tellement formelle que, en 30 ans de métier, je n’ai jamais vu de boîte de dev réelle aussi stricte que le régime IA que j’ai mis en place. Des normes de code, une méthodologie que j’appelle le « robot Kanban », et un setup QA pour ChatGPT qui est vraiment sans pitié et qui s’éclate à débusquer les erreurs et les oublis.

Trois couches de contexte

Je gère le contexte de plusieurs façons.
1. Happy Trees - un schéma markdown de vue arborescente léger et compact que j’ai inventé, deux fois moins lourd que le JSON, et focalisé sur les structures de fichiers complexes.

2. Cartes logiques - un système pour indexer une application Golang qui lit vos types, vos structs, vos fonctions, et les place dans un format JSON hiérarchique. On a ainsi une vue d’ensemble de chaque module Go... sans que Claude ne fonde. Le système utilise aussi la tokenisation et score la complexité cognitive des modules et des fichiers, ce qui indique bien quand mes préoccupations doivent être découpées et modularisées. Pratique quand votre implémentation peut atteindre 90 heures-homme en une journée.

J’ai écrit cette partie de l’infrastructure en PHP parce qu’elle change assez souvent pour nécessiter un langage de script. Mais le code pour le calcul du poids cognitif et la tokenisation, c’est beaucoup d’expressions régulières. Ça veut dire soit l’écrire en Python et croiser les doigts, soit le faire en PHP, où les expressions régulières sont plus faciles à lire et à traiter.

3. Rapports d’état actuel. Je maintiens les sessions Claude à leur longueur maximale, sans forcer. J’ai donc instauré un rituel dans le processus robot Kanban : je termine la session en demandant à Claude de documenter pédantiquement chaque décision, morceau de code, carte logique et fichier avec lesquels on a interagi.

Et ensuite, je redonne à la machine les éléments dont elle a besoin pour continuer au début de la session suivante.

Cette combinaison de choses permet à Claude de rester cohérent et concentré. Mais j’avoue qu’il est difficile de ne pas partir dans tous les sens avec lui.

La boucle QA

Utiliser ChatGPT pour la QA fonctionne plutôt bien. Mini a moins de flexibilité cognitive que Claude et a besoin d’un processus beaucoup plus formel pour faire même des choses basiques, mais c’est une très bonne réviseuse de code et de documentation.

Voilà, c’est à peu près tout :)

Maintenant, on finit le projet Worm !