Un Node est utile seul. Un graphe transforme le travail en système.
Kavor ne vous demande pas d'abandonner votre coding agent préféré, de masquer le terminal ni de transformer chaque décision en une nouvelle conversation. Il réunit participants, outils et contexte sur un même Canvas afin que vous puissiez voir qui travaille, avec quoi et dans quelles limites.
Chaque élément de premier plan sur ce Canvas est un Node. Un CodingAgent est un Node. Une Specification aussi. Sticky Note, Terminal, File et Trigger occupent le même espace parce qu'ils peuvent tous prendre part au travail, chacun avec une responsabilité différente.
Seul, un Node est déjà utile. Lorsque vous créez une Connection, cette utilité devient une capacité explicite. Lorsque plusieurs Connections forment un graphe, le contexte, l'exécution, la mémoire et la collaboration ne sont plus dispersés entre des fenêtres et des sessions isolées.
Voici le modèle :
Node → Connection → graphe → décision humaine
Cette séquence décrit la manière dont le travail acquiert une structure. Les Connections ne sont ni des flèches persistées ni une automatisation qui exécute la case suivante. Ce sont des relations visibles entre des Nodes.
Un Canvas peut associer intention durable, mémoire partagée, exécution, fichiers et cause planifiée sans masquer les participants ni leurs Connections.
Ce qu'une Connection change réellement
Une Connection répond à une question pratique : que peuvent faire ces deux Nodes ensemble ?
Selon la combinaison, elle peut permettre à un CodingAgent de travailler avec une Specification, d'écrire dans une Sticky Note, d'opérer un Terminal, de considérer un File comme une partie explicite du périmètre ou de dialoguer avec un autre CodingAgent. Elle peut aussi fournir à un Terminal le chemin canonique d'un File, ou réveiller à une heure définie un CodingAgent dont la session est active.
Dans le même temps, la Connection établit une limite :
- des Nodes proches sur le Canvas n'obtiennent aucun accès l'un à l'autre ;
- mentionner un Node dans un message n'accorde aucune capacité ;
- toutes les combinaisons de Nodes ne sont pas prises en charge ;
- un Guardrail peut restreindre une capacité accordée par la Connection ;
- le graphe rend le contexte accessible, mais n'approuve pas automatiquement les actions.
Le résultat est moins magique et plus utile : vous pouvez inspecter la structure avant, pendant et après le travail.
Les sept Nodes
CodingAgent : votre harness préféré comme participant du graphe
Un CodingAgent est le provider natif que vous utilisez déjà, exécuté dans sa propre interface de terminal. Au lieu de remplacer Claude Code, Codex ou Google Antigravity par une conversation générique, Kavor préserve l'expérience de chaque harness et l'installe sur le Canvas.
Chaque CodingAgent peut avoir un rôle clair. Le harness conserve ses options natives de provider, de modèle et de niveau d'effort lorsqu'il propose ces capacités. Vous pouvez garder un Spec Writer concentré sur les questions et les décisions, un Builder dédié à l'implémentation et un Reviewer chargé de mettre le résultat à l'épreuve.
Lorsque des CodingAgents sont connectés, ils peuvent échanger des messages asynchrones. Vous continuez à voir ces conversations dans le panneau Messages et pouvez intervenir si nécessaire. En les connectant à des Specifications, Files, Sticky Notes et Terminals, le graphe indique clairement quelles ressources participent au travail.
C'est le même harness, avec désormais un contexte et des capacités visibles.
Specification : une intention qui survit à la session
Une Specification consigne les décisions, le périmètre, les contraintes et les critères d'acceptation dans un Markdown durable. Elle peut décrire les fondations d'une architecture, une intégration, la modélisation d'un domaine, une fonctionnalité, un module ou une séquence délimitée de corrections.
Vous pouvez l'écrire manuellement ou la corédiger avec un CodingAgent. Pour les sujets difficiles, mieux vaut investir le meilleur raisonnement disponible avant l'implémentation. Réfléchir en profondeur à ce stade coûte généralement moins cher que de corriger les ambiguïtés ensuite.
Les Specifications ont un lifecycle. Draft sert à explorer et à décider. Ready indique que le contrat peut être implémenté. In progress, Blocked et Done rendent l'état du travail visible. Done n'a de sens que lorsque les critères d'acceptation sont réellement satisfaits.
Connectée à des agents aux rôles distincts, la même Specification peut guider celui qui écrit, celui qui implémente et celui qui révise, sans dépendre de la mémoire d'une seule conversation.
Sticky Note : une mémoire de travail partagée
Une Sticky Note est un post-it sur le Canvas. Vous pouvez y écrire des questions, des hypothèses, des décisions temporaires, des constats et les prochaines étapes comme dans n'importe quelle note rapide.
Connectée à un CodingAgent, elle gagne une deuxième paire de mains. L'agent peut tenir la note avec vous : rassembler les décisions ouvertes pendant l'élaboration d'une Specification, signaler un point qui mérite votre attention pendant l'implémentation ou répondre à « qu'as-tu déjà fait, que fais-tu et que feras-tu ensuite ? » sans enfouir cet état dans l'historique d'une conversation.
Les Sticky Notes sont adaptées à une mémoire informelle et visible. Lorsqu'une décision devient un contrat durable pour l'implémentation et la maintenance future, elle doit être promue en Specification au lieu de rester cachée pour toujours dans une note.
Partager le contexte n'autorise pas un agent à réorganiser vos notes ou celles d'un autre participant. Précisez quelle note il doit maintenir et ce qu'il doit préserver ; consultez le guide Sticky Note.
Terminal : une exécution qui reste visible
Un Terminal maintient le shell dans le même Workspace visuel. Vous pouvez passer d'un terminal à l'autre, suivre un log, exécuter des vérifications ou rester connecté à une machine distante sans perdre le Canvas qui l'entoure.
Lorsqu'un CodingAgent est connecté, vous pouvez travailler ensemble dans le même Terminal. L'agent peut inspecter l'output, exécuter des commandes lorsque cela est permis, suivre une exécution corrélée et contribuer à un diagnostic. La saisie humaine reste prioritaire, et un Guardrail peut rendre la Connection accessible en lecture seule.
Files et Specifications peuvent également fournir leurs chemins au Terminal par l'intermédiaire de variables d'environnement. Un Trigger peut remettre une commande planifiée directement à une session active du shell.
Le Terminal ne masque pas l'exécution derrière une automatisation opaque. Le processus, la commande et le résultat restent visibles.
File : un fichier qui participe au Canvas
Un File est un fichier. L'intérêt consiste à rendre sa source canonique visible et explicite dans le graphe.
Connecté à un CodingAgent, il peut délimiter le fichier à lire, à réviser ou à modifier. Sur le Canvas, il peut aussi garder un texte, une image ou un PDF sous vos yeux pendant que vous organisez le reste du travail.
Connecté à un Terminal, le chemin absolu du File peut être exposé par une variable d'environnement. Vous pouvez ainsi utiliser visuellement un script, un fichier SQL, une configuration ou un autre support comme entrée d'une commande, sans recopier de chemins entre les fenêtres.
Le File ne devient pas une pièce jointe jetable. Il reste la véritable source dans le filesystem.
WebBrowser : le web ouvert à l'humain et à l'agent
Un WebBrowser place de véritables pages Chromium sur le Canvas. Vous pouvez naviguer, conserver des onglets et suivre ce qui se passe sans quitter le Workspace.
Connecté à un CodingAgent, il devient plus qu'une référence visuelle. L'agent peut observer et utiliser les mêmes pages actives que vous : naviguer, cliquer, remplir des champs, attendre un état et capturer des preuves. La Connection rend le navigateur accessible ; elle ne contourne ni l'authentification, ni les permissions, ni les décisions humaines.
Le profil du navigateur est dédié à Kavor et partagé par ses WebBrowsers. Cookies et sessions peuvent survivre à la suppression d'un Node jusqu'à ce que vous effaciez les données dans Settings. Conçu pour le développement, ce profil accepte les certificats autosignés, expirés et privés. Un réseau hostile peut donc lui présenter n'importe quel certificat ; gardez cette exposition à l'esprit, surtout lorsque vous vous connectez à des services.
Lorsque vous changez de Workspace dans la même fenêtre, Kavor préserve la page active. À votre retour, le WebBrowser réapparaît sans rechargement et un CodingAgent connecté peut continuer à utiliser cet état lorsque le Workspace est hors écran. Fermer l'onglet, supprimer le Node ou terminer la session met fin à cette continuité.
(s’ouvre dans un nouvel onglet)
Voir l'humain et le CodingAgent travailler sur la même page → (s’ouvre dans un nouvel onglet)
Trigger : une cause visible d'activité
Un Trigger planifie une action dans le temps. Il peut remettre une commande à un Terminal, comme le cron du système d'exploitation, ou envoyer un prompt clair à un CodingAgent dont la session est active.
Sa valeur augmente lorsque la cible est déjà connectée à d'autres Nodes. Un Trigger peut réveiller un agent chargé d'inspecter un File, d'exécuter des vérifications dans un Terminal, d'écrire un rapport dans une Sticky Note et de demander une révision indépendante à un autre CodingAgent.
C'est ainsi qu'une heure dans le calendrier peut donner naissance à un petit système autonome ou semi-autonome. Le Trigger lance l'activité ; le graphe apporte le contexte, les outils, la mémoire et la collaboration.
Le Trigger ne décide pas seul de ce qui mérite d'être fait, n'élargit pas les permissions, ne démarre pas une session que vous avez laissée arrêtée et ne possède qu'une seule cible directe : un CodingAgent ou un Terminal.
Lorsque les Nodes forment un graphe
La valeur du Canvas apparaît lorsque chaque Node possède une responsabilité et que les Connections expriment un besoin réel. Trois graphes illustrent cette progression.
De l'intention à la révision
Specification → Builder → Reviewer → décision humaine
La Specification conserve le contrat. Le Builder implémente. Le Reviewer compare le résultat aux critères d'acceptation. Une Sticky Note préserve les constats et les décisions de travail ; un Terminal fournit des preuves telles que les tests et les vérifications.
Les Connections n'exécutent pas automatiquement cette séquence. Elles rendent les participants et les capacités nécessaires accessibles au sein d'un même graphe.
Maintenance planifiée
Trigger → Maintainer
Le Maintainer est connecté à un File contenant les données d'entrée, à un Terminal pour exécuter les vérifications, à une Sticky Note pour consigner le rapport et à un Reviewer pour obtenir une évaluation indépendante.
Le Trigger remet le prompt à l'heure configurée lorsque Kavor est en cours d'exécution et que la session de la cible est active. Le CodingAgent travaille avec le contexte et les limites qu'il possédait déjà. À votre retour dans le Workspace, vous pouvez consulter les résultats, les messages et les preuves.
Commande opérationnelle supervisée
Trigger → Terminal
Un File contenant du SQL ou un script fournit son chemin au Terminal par une variable d'environnement. Le Trigger remet la commande planifiée à la session active. Un CodingAgent connecté au Terminal peut aider à analyser le résultat, tandis que vous gardez le processus sous les yeux.
Ce graphe automatise une cause et une exécution sans prétendre que le système connaît à lui seul le sens du succès.
Réutiliser un graphe sans reconstruire chaque Node
Un petit ensemble, par exemple Builder, Reviewer et Sticky Note, peut être copié pour une autre tâche ou déplacé vers un autre Workspace. Sélectionnez tous les Nodes à transférer : seules leurs Connections internes sont capturées.
Copier ou déplacer
- Sélectionnez les Nodes sur le Canvas, avec le focus hors d'un éditeur, Terminal ou page WebBrowser.
- Copiez avec
⌘Csur macOS ouCtrl+Csur Windows/Linux ; déplacez avec⌘XouCtrl+X. Le menu contextuel propose aussiCopy Node/Copy NodesetCut Node/Cut Nodes. - Restez sur le même Canvas ou ouvrez le Workspace de destination, y compris dans une autre fenêtre Kavor.
- Placez le pointeur à l'endroit voulu et utilisez
⌘VouCtrl+V. Sans position du pointeur sur le Canvas, le collage utilise le centre de la zone visible. Le menu contextuel colle à son point d'ouverture. - Vérifiez les Nodes, Connections et ressources de destination avant de reprendre.
La disposition relative est conservée. Une copie est réutilisable ; une coupe est consommée au déplacement.
Couper ne retire pas immédiatement le groupe : Esc sur le Canvas source annule une coupe non collée. Undo/Redo
permet aussi de revenir sur un collage terminé, mais Kavor peut refuser une annulation qui écraserait des
modifications ultérieures des Nodes.
Une structure n'est ni une session ni une sauvegarde
Le presse-papiers de graphes existe seulement pendant l'exécution du processus Kavor. Un redémarrage perd la capture ; une autre copie remplaçant le presse-papiers peut aussi l'invalider. Ce n'est pas un format d'export entre machines.
- Connections externes : les liens vers des Nodes non sélectionnés ne sont pas copiés. Un déplacement vers un autre Workspace les retire à la source ; sélectionnez tout le contexte nécessaire.
- CodingAgent et Terminal : copier ne clone ni conversation, ni processus, ni historique d'exécution. Déplacer entre Workspaces ferme les sessions source. Le CodingAgent ne conserve pas son association Git/worktree et démarre dans le contexte du Workspace de destination ; vérifiez répertoire et configuration.
- File : le collage référence le même fichier physique, sans dupliquer ses octets. Si celui-ci est déjà matérialisé à destination, son Node est réutilisé. Modifier la source affecte toujours le même fichier.
- Specification dans un autre Workspace : son Markdown apparaît comme File, pas comme une nouvelle Specification au même lifecycle. La Specification et ses métadonnées restent dans leur Workspace propriétaire.
- Trigger : une copie est créée en pause. Vérifiez cible et payload avant
Resume. Une livraison non résolue empêche de déplacer le Trigger vers un autre Workspace ; attendez un état final avant de réessayer.
Si le collage échoue parce que la sélection coupée a changé ou qu'une source n'existe plus, vérifiez l'origine et effectuez une nouvelle capture. Copier le graphe ne prouve pas que les agents ont terminé leur travail.
Pour coller des fichiers ou images dans la saisie d'une session, plutôt que des Nodes sur le Canvas, suivez la procédure Terminal.
Commencez par le travail, pas par le nombre de Nodes
Un Canvas plus grand n'est pas automatiquement meilleur. Commencez par la plus petite structure qui rend le résultat vérifiable :
- définissez ce qui doit se produire ;
- ajoutez une Specification lorsque des décisions, un périmètre ou des critères doivent survivre ;
- choisissez un CodingAgent et attribuez-lui un rôle clair ;
- connectez un File lorsque le périmètre concret doit être explicite ;
- connectez un Terminal lorsque la tâche exige une exécution ou des preuves ;
- utilisez une Sticky Note lorsque l'humain et l'agent doivent partager une mémoire de travail ;
- connectez un WebBrowser lorsque le travail doit observer ou utiliser une page active ;
- ajoutez un autre CodingAgent lorsqu'une révision indépendante ou un travail parallèle améliore réellement le résultat ;
- ajoutez un Trigger lorsque le temps constitue une cause légitime de l'activité.
L'objectif n'est pas de remplir le Canvas. Il s'agit de construire un système assez petit pour être compris et assez complet pour préserver l'intention, l'exécution, les preuves et la décision.
Pour aller plus loin
- Consultez la matrice des Connections prises en charge pour savoir exactement ce que permet chaque combinaison.
- Bouclez votre premier cycle avec une Specification, deux CodingAgents et une Sticky Note.
- Découvrez comment choisir les CodingAgents et leurs rôles afin de séparer formulation, implémentation, révision et livraison.
- Utilisez une Sticky Note comme mémoire de travail partagée.
- Découvrez comment un File transforme une source canonique en contexte et portée.
- Développez, déboguez et testez avec un agent dans WebBrowser.
- Revenez à Qu'est-ce que Kavor ? pour revoir le modèle complet du produit.