100 000 lignes de Rust avec l'IA : contrats, développement piloté par les spécifications et performance

Cheng Huang a passé environ 6 semaines à construire un moteur de consensus multi-Paxos en Rust destiné à moderniser la Replicated State Library (RSL) d'Azure. Le projet implique plus de 130 000 lignes de code Rust (~100 000 écrites en 4 semaines par des agents IA, plus 3 semaines d'optimisation) et a réalisé un bond de débit de 23 000 à 300 000 opérations par seconde.
Huang a utilisé plusieurs agents de codage IA : GitHub Copilot, Claude Code, Codex CLI, Augment Code, Kiro et Trae. Sa configuration principale est désormais Claude Code + Codex CLI depuis le terminal, avec VS Code uniquement pour les diffs et les modifications mineures. Il maintient deux abonnements ChatGPT pour gérer les limites de débit (un du lundi au mercredi, un du jeudi au dimanche).
Contrats de code — écrits par l'IA
La stratégie de correction fondamentale : des contrats de code générés par IA qui spécifient les préconditions, postconditions et invariants pour les fonctions critiques, convertis en assertions d'exécution lors des tests. Huang a constaté que GPT-5 High écrit d'excellents contrats ; Opus 4.1 est bon mais nécessite plus de révision. Par exemple, la méthode process_2a (gérant les messages de la phase 2a de Paxos) a 16 contrats. Les contrats sont ensuite utilisés pour générer des cas de test ciblés et des tests basés sur les propriétés qui explorent des entrées aléatoires — un contrat a détecté une subtile violation de sécurité Paxos qui aurait pu causer des problèmes de cohérence de réplication.
Développement dirigé par spécifications léger
Huang a d'abord essayé une approche rigide dirigée par les spécifications : cahier des charges en markdown → conception en markdown → liste de tâches en markdown. Il l'a trouvée trop inflexible pour les changements itératifs. Il utilise désormais une approche SDD plus légère : commencer par une spécification concise, laisser l'IA générer le code, puis affiner les contrats et les tests de manière itérative. Le système complet comprend plus de 1 300 tests couvrant des tests unitaires, d'intégration et d'injection de pannes multi-répliques.
Optimisation des performances
La phase d'optimisation (3 semaines) a augmenté le débit de 23 000 à 300 000 opérations par seconde. Changements architecturaux clés : ajout du pipelining (les requêtes n'attendent plus les votes en cours), prise en charge de la mémoire non volatile (NVM) pour réduire le temps de validation, et sensibilité à RDMA pour le matériel moderne des datacenters Azure.
Prochaines étapes
Huang souhaite un meilleur support IA pour la génération de tests basés sur les propriétés à partir des contrats et une gestion plus transparente des changements cassants dans les bases de code de plus de 100 000 lignes.
📖 Read the full source: HN AI Agents
👀 See Also

Claude Code Auto-audit trouve 3 Go de déchets dans ~/.claude — Voici comment le nettoyer
Un utilisateur a demandé à Claude Code d'auditer son propre répertoire ~/.claude et a trouvé 2,6 Go de transcripts de session obsolètes, 170 Mo de journaux de tentatives de télémétrie échouées et 153 Mo de tampons d'annulation — passant de 3 Go à moins de 200 Mo après le nettoyage.

Sources de données de Claude : Quand demander des recherches web pour des informations actuelles
Claude s'appuie parfois sur des données d'entraînement internes plutôt que d'effectuer des recherches web, ce qui peut fournir des informations obsolètes. Les utilisateurs peuvent demander spécifiquement des recherches web pour obtenir des résultats plus récents.

Interception TLS par antivirus interrompt la connexion de Claude Desktop ; solution avec des exclusions AV
L'inspection TLS par antivirus sur bridge.claudeusercontent.com empêche Cowork (le compagnon de bureau de Claude) de fonctionner, avec le message 'Claude dans Chrome n'est pas connecté'. Solution : ajouter *.claudeusercontent.com et *.anthropic.com aux exclusions HTTPS de l'antivirus. Utiliser Node.js --use-system-ca éviterait ce problème.

Habitudes pratiques pour une interaction critique avec les LLM
Un post sur Reddit décrit des techniques spécifiques pour éviter les biais de confirmation lorsqu'on travaille avec des LLM, y compris des modes d'invite personnalisés comme 'strawberry' pour des explications neutres et 'socrates' pour un examen contradictoire, ainsi que l'évaluation de la composition des données d'entraînement.