Présentation du concept

Rust off Rails se définit comme une pile web où toute la production de code – Rust, SQL, HTML, CSS, TypeScript et Dockerfile – est confiée à un agent d’intelligence artificielle. Les développeurs humains ne rédigent que des spécifications d’intention dans le répertoire product/, répondent aux interviews et donnent du feedback. La règle fondamentale, explicitée dans le §0 du projet, stipule que les humains n’écrivent jamais de code. Cette séparation stricte entre intention et implémentation crée un modèle où le boilerplate est considéré comme gratuit et les conventions sont imposées automatiquement.

Architecture et flux de travail

Le projet adopte Markdown comme cadre de définition. Au lieu de livrer une bibliothèque, il fournit une spécification précise qui décrit les files d’attente, les sessions et l’adaptateur Inertia. L’agent IA consomme cette spécification et génère le code correspondant, que le développeur possède ensuite. Les décisions d’architecture – choix de crates, organisation des fichiers, conventions de nommage, gestion des erreurs et stratégie de tests – sont fixées une fois pour toutes dans la spécification, ce qui empêche tout débat ultérieur de l’agent sur l’ORM ou d’autres composants. Cette approche vise à éliminer l’incohérence, considérée comme l’ennemi principal, au détriment de l’imperfection.

Batteries incluses et portée fonctionnelle

Le stack propose des guides et recettes intégrés pour chaque couche d’une application web moderne : authentification, traitement asynchrone (jobs), envoi d’e‑mail, mise en cache, gestion des uploads, communication en temps réel et déploiement automatisé. Chaque fonctionnalité est décrite dans la documentation sous forme de spécifications Markdown, ce qui permet à l’agent de produire immédiatement le code nécessaire sans repartir d’une page blanche. Cette couverture exhaustive vise à réduire le temps de mise en place d’une application complète, tout en maintenant la cohérence imposée par les spécifications initiales.

Analyse des limites et risques

La dépendance exclusive à l’IA pour la génération de code introduit plusieurs contraintes. D’une part, la traçabilité du code repose sur la version de la spécification et sur le comportement de l’agent au moment de la génération ; toute modification de l’agent ou du modèle sous‑jacent peut altérer le résultat sans que le développeur n’en ait conscience. D’autre part, le fait que les humains ne touchent jamais le code limite la capacité à déboguer ou à optimiser manuellement des parties critiques, notamment en matière de performances ou de sécurité. Enfin, la promesse d’une cohérence totale dépend de la qualité des spécifications ; une spécification incomplète ou ambiguë peut conduire l’agent à produire du code fonctionnel mais mal aligné avec les exigences métier, ce qui impose une vigilance accrue lors de la rédaction des intents.