PACT : Un Cadre de Gouvernance Programmatique pour le Code Claude Après les Modèles de Défaillance des Agents

Après trois mois de développement d'une application mobile avec Claude Code (plus de 350 fichiers, plus de 70 tables de base de données, BLE peer-to-peer, base de données locale chiffrée, synchronisation cloud), un développeur a identifié des schémas d'échec récurrents qui ne pouvaient pas être corrigés avec les règles CLAUDE.md. L'agent a répété les mêmes catégories d'erreurs à travers les sessions, notamment en ajoutant trois fois des bibliothèques de base de données interdites après avoir été averti, en divulguant des métadonnées de chiffrement au serveur (ce qui a cassé la connexion pour tous les utilisateurs), en passant plus de 4 heures à déboguer Bluetooth en devinant l'API au lieu de lire la documentation, et en appliquant des correctifs de sécurité qui ont cassé la restauration des sauvegardes en ne considérant pas le cycle de vie complet.
Le problème avec les règles
CLAUDE.md a atteint plus de 50 règles mais est devenu performatif - Claude les récitait au début de la session puis les violait facilement. Quand on lui a demandé pourquoi les règles étaient ignorées, Claude a répondu : "Je dois être honnête avec vous. Je peux ignorer les règles en les traitant davantage comme des suggestions. Elles ne peuvent pas toujours empêcher le comportement..."
La solution : le framework PACT
Le développeur a demandé à Claude : "Si je vous donnais la permission de redessiner ce système vous-même, que construiriez-vous ?" Cela a conduit à la création de PACT (Programmatic Agent Constraint Toolkit) avec l'idée centrale, selon les propres mots de Claude : "Les règles sont des suggestions. L'infrastructure est la loi."
Les quatre piliers de PACT
- Application mécanique : Des hooks PreToolUse qui bloquent les schémas interdits avant que les modifications ne soient appliquées. Exemples :
import hive? Bloqué.print()au lieu du logger ? Bloqué. Modifier un fichier que vous n'avez pas lu ? Bloqué. - Remplacement du contexte : Une carte d'architecture YAML (SYSTEM_MAP.yaml) décrit chaque flux de données : table de base de données → service → gestion d'état → écran UI → comportement en cascade. L'agent lit cela au lieu de passer 15-20 minutes à relire les fichiers sources à chaque session.
- Raisonnement auto-évolutif : Au lieu de règles ("toujours vérifier les dépendances"), des redirections cognitives qui sont des questions : "Qu'est-ce qui dépend de cela, et de quoi cela dépend-il ?" Les questions engagent le raisonnement d'une manière que les règles ne font pas. L'agent peut ajouter de nouvelles redirections quand il se surprend à faire des suppositions.
- Séparation structure/comportement : Les cartes d'architecture (quels fichiers existent) restent séparées des flux de cycle de vie (ce qui se passe à travers les états de l'application). Empêche les deux échecs documentaires les plus courants : les cartes qui deviennent des essais que personne ne lit, et les flux qui dupliquent la structure qui devient obsolète.
Exemples pratiques d'implémentation
Redirections cognitives en pratique : "Quand vous êtes sur le point de supprimer du code : Pourquoi ce code existe-t-il ?" a été ajouté après que Claude ait supprimé un contournement pour un bug du framework alors que le commentaire juste au-dessus expliquait pourquoi il était là. "Quand vous trouvez une objection à votre propre solution : Cette objection est-elle réelle, ou est-ce que je me replie ?" a été ajouté après que Claude ait proposé le correctif approprié, s'en soit dissuadé pendant la revue, et que le développeur ait dû sauver sa propre idée.
Suivi de bugs avec base de connaissances des solutions : Une session a passé 3 heures à résoudre un problème BLE spécifique à Samsung. La session suivante a rencontré le même bug sans aucun souvenir. Maintenant, chaque investigation est enregistrée en temps réel — symptômes, tentatives échouées, cause racine, correctif. La première action de l'agent sur tout bug est de vérifier si une session précédente l'a déjà résolu.
Fichiers de connaissances des packages : Le cauchemar de débogage Bluetooth de 4 heures est arrivé parce que Claude devinait comment le package fonctionnait à partir de données d'entraînement obsolètes. Maintenant, il y a une exigence obligatoire de consulter les fichiers de connaissances des packages.
📖 Read the full source: r/ClaudeAI
👀 See Also

Le chemin rapide de recherche de mémoire QMD d'OpenClaw présentait des bogues silencieux
La recherche en mémoire intégrée d'OpenClaw utilise une correspondance de mots-clés basique, mais les utilisateurs peuvent passer à QMD pour une recherche sémantique dans les fichiers markdown de l'espace de travail. Un chemin rapide via MCPorter était cassé avec trois bogues provoquant l'échec silencieux de chaque appel et le retour à une exécution CLI plus lente.

Code Claude utilisé pour simuler plus de 4 000 parties de Loup-garou aveugle avec des LLM
Un développeur a utilisé Claude Code pour créer un simulateur où des LLM jouent à Loup-garou en une nuit sans informations, exécutant environ 4 600 parties avec des modèles d'OpenAI et xAI. L'expérience a révélé des schémas de vote cohérents basés sur les noms malgré des signaux de jeu minimaux.

iai-mcp : Un démon local offre à Claude une mémoire persistante entre sessions avec 99% de rappel
iai-mcp est un démon local open-source qui capture chaque conversation Claude, l'organise en trois niveaux de mémoire et réinjecte le contexte dans les nouvelles sessions. Il atteint un rappel textuel de >99 %, une récupération en moins de 100 ms et un coût de démarrage de session inférieur à 3 000 tokens.

Claude Code Ultracode Mode génère un pipeline de 70 agents pour la recherche approfondie
Une seule requête 'deep search' en mode ultracode de Claude Code génère automatiquement un pipeline en 4 phases avec ~70 agents, chacun récupérant et recoupant les projets indépendamment. Le script d'orchestration maintient les résultats intermédiaires hors de la fenêtre de contexte, évitant ainsi une surcharge.