Accéder à la documentation

Matrice des Connections prises en charge par Kavor

Une Connection n'est pas une simple ligne tracée sur le Canvas. Elle déclare que deux Nodes participent au même graphe et définit les capacités que cette combinaison ajoute au travail.

Toutes les combinaisons ne sont pas valides. Chaque paire prise en charge possède un contrat précis : certaines Connections rendent le contexte accessible, d'autres autorisent des opérations médiées par Kavor, et deux d'entre elles fournissent des chemins canoniques à un Terminal au moyen de variables d'environnement.

Cette page constitue la référence publique de ces contrats.

Comment lire une Connection

Une Connection remplit trois fonctions distinctes :

  1. Existence : elle relie les Nodes dans un même composant accessible du graphe.
  2. Paramètres : elle enregistre une configuration obligatoire lorsque la paire en a besoin.
  3. Guardrails : elle retranche des capacités au comportement normalement autorisé entre les deux Nodes.

Les Connections sont des relations bidirectionnelles. Kavor stocke les deux endpoints dans un ordre canonique, mais cet ordre n'exprime ni flux, ni contrôle, ni priorité. Un message possède toujours un expéditeur et un destinataire ; un Trigger possède toujours une cible. Ces directions appartiennent à l'opération exécutée, pas à la Connection persistée.

Combinaisons prises en charge

Paire de NodesCe que la Connection permetParamètresGuardrail disponibleExemple principal
CodingAgent+SpecificationLire les métadonnées et le Markdown canonique, travailler avec le lifecycle et enregistrer des outputs durables lorsque cela est permis.Aucunspecification_read_onlySpec Writer, Builder et Reviewer partageant le même contrat.
CodingAgent+Sticky NoteLire et écrire une mémoire informelle en Markdown avec contrôle de version ; chaque écriture choisit append ou replace.Aucunsticky_note_read_onlyDécisions ouvertes, progression, constats et handoffs visibles.
CodingAgent+TerminalLire l'output, exécuter des commandes, suivre ou interrompre une exécution corrélée et interagir avec le processus au premier plan lorsque cela est permis.Aucunterminal_read_onlyDiagnostic, tests, logs ou assistance dans une session SSH supervisée.
CodingAgent+FileRendre une source canonique du filesystem explicite dans le graphe pour la lire, la réviser ou la modifier lorsque cela est permis.Aucunfile_read_onlyDélimiter un module, un PDF, une image, un rapport ou une configuration.
CodingAgent+CodingAgentFormer un graphe accessible pour les messages asynchrones, les réponses, la révision indépendante et le travail parallèle.AucunAucunUn Builder demandant une révision à un Reviewer.
Specification+TerminalExporter le chemin absolu canonique de la Specification vers la session du Terminal.Nom de variable d'environnement obligatoireAucunValider, inspecter ou comparer le Markdown de la Specification.
File+TerminalExporter le chemin absolu canonique du File vers la session du Terminal.Nom de variable d'environnement obligatoireAucunExécuter un script ou utiliser un fichier SQL sans recopier son chemin entre les fenêtres.
Trigger+CodingAgentRemettre à une heure configurée un prompt à un CodingAgent dont la session est active.AucunAucunRéveiller un Maintainer pour analyser des échecs, écrire un rapport et demander une révision.
Trigger+TerminalRemettre à une heure configurée une commande à la session active d'un Terminal.AucunAucunLancer des tests, une vérification de base de données ou un script de maintenance.

Les Guardrails restreignent ; ils n'accordent aucun accès

Une Connection commence avec les capacités implémentées pour la paire concernée. Un Guardrail enregistre une restriction choisie par l'utilisateur sur cette base :

GuardrailConnectionEffet
specification_read_onlyCodingAgent+SpecificationConserve la lecture et interdit les modifications du lifecycle et des outputs via Kavor. L'édition directe du Markdown devient un contrat explicite de lecture seule.
sticky_note_read_onlyCodingAgent+Sticky NoteConserve la lecture et bloque append ou replace du contenu.
terminal_read_onlyCodingAgent+TerminalConserve l'inspection du Terminal et bloque les opérations qui modifieraient la session, le processus ou son entrée.
file_read_onlyCodingAgent+FileDéclare que la source canonique ne doit pas être modifiée par l'agent.

Les Guardrails appartiennent à la Connection directe entre le CodingAgent et la ressource. Un autre chemin dans le graphe n'efface pas une restriction qui existe sur cette paire directe.

Les opérations médiées par Kavor sont rejetées avant de produire des effets lorsqu'un Guardrail les bloque. Les Files et le corps des Specifications peuvent également être accessibles par les outils de filesystem du harness lui-même ; dans ce cas, le Guardrail est un contrat visible et surveillé, pas une sandbox du système d'exploitation.

Un Guardrail ne crée pas de Connection, ne rend pas un Node accessible et n'augmente pas les permissions. Si vous souhaitez empêcher une ressource de participer au graphe, ne créez pas la Connection.

Connections avec variables d'environnement

Seules deux paires possèdent des paramètres persistés :

  • File + Terminal ;
  • Specification + Terminal.

Dans les deux cas, vous choisissez le nom d'une variable d'environnement. La valeur fournie au Terminal est le chemin absolu canonique de la source, jamais le contenu du fichier.

Par exemple, un File connecté sous le nom CHECK_SQL peut être utilisé dans le shell ainsi :

sqlite3 app.db < "$CHECK_SQL"

Kavor applique la valeur au démarrage de la session du Terminal. Si la Connection ou son paramètre change alors que le shell est ouvert, l'interface indique que la variable attend le redémarrage de la session. TERM et COLORTERM sont des noms réservés qui ne peuvent pas être utilisés pour ces paramètres.

La limite particulière d'un Trigger

Un Trigger possède au maximum une cible directe : un CodingAgent ou un Terminal. Il ne se connecte pas directement à une Specification, un File ou une Sticky Note et ne distribue pas un même déclenchement à plusieurs cibles.

Le reste du graphe peut étendre ce que la cible est capable de faire sans élargir ses permissions. Un CodingAgent réveillé par un Trigger peut travailler avec les Nodes déjà accessibles, sous les mêmes Guardrails et les mêmes limites de session.

Pour que la remise ait lieu, Kavor doit être en cours d'exécution et la session de la cible doit être active. Un Trigger ne démarre pas une session que vous avez laissée arrêtée, ne décide pas de l'objectif du travail et ne transforme pas les effets externes en opérations exécutées exactement une fois. Chaque TriggerFiring conserve un résultat durable à des fins d'inspection.

Combinaisons inexistantes

Kavor rejette toute paire absente de la matrice. Cela inclut notamment :

  • Trigger + Specification ;
  • Trigger + File ;
  • Trigger + Sticky Note ;
  • Specification + File ;
  • Specification + Sticky Note ;
  • File + Sticky Note ;
  • File + File ;
  • Sticky Note + Terminal ;
  • Sticky Note + Sticky Note ;
  • Terminal + Terminal.

Un Node ne peut pas non plus être connecté à lui-même. Inverser les deux mêmes endpoints ne crée pas une autre Connection, puisque la relation ne possède pas de direction persistée.

La proximité sur le Canvas, la mention dans un message ou la participation au même Workspace ne remplacent pas une Connection. Si une combinaison n'apparaît pas sur cette page, elle n'accorde aucune capacité du seul fait d'être visuellement proche d'une autre.

Choisissez la plus petite Connection qui résout le travail

Avant de connecter deux Nodes, demandez-vous quelle capacité concrète manque :

  • l'agent a besoin d'une intention durable ? Connectez une Specification ;
  • l'humain et l'agent doivent conserver une mémoire de travail ? Connectez une Sticky Note ;
  • l'agent doit exécuter ou observer un processus ? Connectez un Terminal ;
  • une source canonique doit être explicite ? Connectez un File ;
  • un autre point de vue améliorerait l'implémentation ou la révision ? Connectez un autre CodingAgent ;
  • le temps doit-il réellement déclencher l'activité ? Ajoutez un Trigger en dernier.

Une bonne Connection rend le travail plus explicite. Si vous ne pouvez pas nommer la capacité qu'elle ajoute, le graphe n'en a probablement pas besoin.

Pour aller plus loin

Dernière révision 7 août 2026Vérifié avec Kavor 1.3.0Partager un avis sur la documentation