produit

Présentation de Projects

Alexi Robbins & Fredrika Lindh6 min de lecture

Aujourd'hui, nous lançons Projects dans Cursor. Projects vous permet de mener des chantiers de plus grande ampleur : une fonctionnalité, une migration ou une application entière. Il maintient le contexte sur des mois de travail, délègue des tâches à des milliers de sous-agents et effectue les travaux récurrents sans qu'on le lui demande.

En février, nous avons présenté notre vision d'une troisième ère du développement logiciel, où des fleets d'agents prennent en charge des chantiers entiers. Projects est la concrétisation de cette vision. En passant à un niveau d'abstraction supérieur, il libère les développeurs de la gestion des agents et leur permet de piloter le travail lui-même.

Chez Cursor, nous utilisons Projects depuis plusieurs mois, notamment pour exécuter des migrations de quelques centaines de PR, préserver la cohérence de notre design system et livrer Projects lui-même. Nous avons constaté qu'il multipliait fortement la productivité : les nouveaux utilisateurs fusionnent 30 % de PR en plus, et ceux qui utilisent principalement Projects en fusionnent six fois plus.

Piloter des milliers d'agents depuis un seul coordinator

Vous supervisez un Project en discutant avec son coordinator agent. Le coordinator n'écrit pas de code lui-même : il pilote d'autres agents qui s'en chargent. Comme il délègue au lieu d'exécuter, il n'est jamais bloqué et reste toujours à l'écoute de vos consignes.

Trois capacités fondamentales rendent Projects possible :

Dans le cloud par défaut, en local si besoin. Un Project s'exécute sur son propre ordinateur : fermer votre portable ne l'interrompt pas. Un Project peut ainsi exécuter davantage de sous-agents en parallèle que votre portable ne pourrait en supporter. Lorsqu'un test doit avoir lieu sur votre machine, le coordinator lance un local agent pour l'y exécuter.

Contexte partagé. Vous ne devriez pas avoir à initier un agent à chaque nouvelle tâche. Chaque Project conserve un ensemble de fichiers synchronisés sur toutes les machines cloud et locales utilisées par ses agents. Les agents y ajoutent leurs recherches et leurs artifacts, ainsi que ce qu'ils apprennent de la base de code et de vos préférences de travail. Si un agent découvre comment tester un service, par exemple, tous les agents suivants pourront utiliser ces instructions. Ce contexte s'enrichit avec le Project, rendant le coordinator plus efficace au fil du temps.

Subscriptions. Le coordinator peut surveiller un canal Slack, s'exécuter selon une planification ou suivre toutes vos PR, en corrigeant la CI et en intervenant à leur ouverture ou à leur fusion. Il peut ainsi agir en fonction des signaux qu'il repère, sans attendre que vous le sollicitiez.

Comment nous utilisons Projects chez Cursor

Trois patterns couvrent l'essentiel des usages que nos ingénieurs font de Projects.

Travail sur les fonctionnalités

La plupart des ingénieurs créent un Project pour un chantier d'envergure. Une fonctionnalité commence généralement par des agents qui étudient le système et consignent leurs découvertes sous forme de contexte partagé. Le coordinator établit ensuite un plan et envoie des agents en implémenter et en tester différentes parties en parallèle.

À chaque échange de retours, le Project assimile votre architecture et vos préférences. Lorsque la fonctionnalité est prête à être essayée, le coordinator peut démarrer un agent sur votre ordinateur et l'exécuter en local. Une fois la fonctionnalité livrée, ce même Project peut surveiller les journaux et traiter les rapports de bugs en disposant de tout le contexte qui a motivé les décisions initiales.

Migrations

Les Projects sont particulièrement utiles pour les migrations faciles à démarrer et difficiles à mener à terme. Chez Cursor, nous nous en sommes servis pour adopter de nouveaux frameworks et remplacer des systèmes de styles sur des centaines de PR.

Vous définissez une approche sûre avec le coordinator, qui l'applique ensuite progressivement à l'ensemble de la base de code. Au début, vous examinez chaque PR de près. À mesure que les correctifs font leurs preuves, vous en examinez de moins en moins, et le coordinator poursuit la migration de lui-même.

Jardinage

Les Projects sont parfaits pour gérer le travail qui ne s'arrête jamais vraiment, comme maintenir la qualité du code ou surveiller les régressions. Vous pouvez demander au coordinator de suivre les nouvelles PR, de guetter les rapports de bugs dans Slack ou de s'exécuter selon une planification : il agit dès que du nouveau travail apparaît.

Un ingénieur de notre équipe utilise ainsi un Project dédié au design system. Au début, il examinait chaque correctif et rectifiait ceux qui étaient erronés. Aujourd'hui, le coordinator analyse chaque nouvelle PR, en extrait les composants qui ont leur place dans le design system et ajoute une règle de lint dès qu'il repère deux fois la même erreur. Le Project devrait bientôt traiter de 20 à 100 PR par jour : le coordinator organise le travail et l'ingénieur intervient là où son attention est nécessaire.

Premiers pas avec Projects

Projects est disponible en bêta et sera déployé progressivement auprès de tous les utilisateurs à partir d'aujourd'hui. Lancez un Project depuis la barre de navigation de gauche, décrivez ce que vous voulez construire, et le coordinator prend le relais. C'est particulièrement efficace pour les travaux qui dépassent le cadre d'un seul chat, qu'il s'agisse d'une fonctionnalité répartie sur plusieurs PR, d'une migration ou d'un job que vous souhaitez confier pendant votre absence.

Classé dans : produit

Auteurs: Alexi Robbins & Fredrika Lindh