Outils
L'interface expose délibérément des outils de haut niveau. Chaque outil du squad correspond exactement à une ligne de sa table de routage — et non à l'un des quelque 200 agents. Le coordinateur du squad est responsable du routage ; ces outils permettent d'y accéder directement.
Outils du squad#
Ils proviennent de tools.catalog.yml, la référence pour les outils exposés. La compilation échoue si l'un d'eux correspond à une intention absente de la table de routage ou à un rôle qui ne figure pas parmi les agents fournis.
| Outil | Rôle principal | Étendue d'autorisation | À distance |
|---|---|---|---|
squad_research | Chercheur du squad | Squad.Research | consultatif |
squad_plan | Responsable du squad | Squad.Plan | consultatif |
squad_review | Responsable de la revue du squad | Squad.Review | consultatif |
squad_architect | Responsable de la revue d'architecture système | Squad.Architect | consultatif |
squad_run | Coordinateur du squad | Squad.Run | pipeline |
squad_federate | Coordinateur de la fédération de squads | Squad.Federate | pipeline |
Les quatre outils consultatifs#
squad_research, squad_plan, squad_review et squad_architect exécutent chacun une invocation en une seule étape et ne réalisent aucune action à impact. C'est pourquoi ils sont exposés à distance même lorsque le pipeline asynchrone est désactivé — par défaut, l'accès distant est exclusivement consultatif.
squad_run — le pipeline consultatif complet#
squad_run est le point d'entrée généraliste. Il applique un routage piloté par les données aux agents réels — chercheur → responsable → membres du conseil → testeur — et le conseil synthétise un verdict Go, Go-With-Conditions ou Stop selon la règle suivante : la décision la plus restrictive prévaut. Le conseil est adapté à la tâche : il ne réunit que les rôles dont l'angle est concerné par la demande (architecture, sécurité, coût, adéquation produit, IA responsable) et consigne chaque angle écarté. Lorsqu'un rôle de conseil nécessaire ne figure pas dans le profil initialisé, l'exécution consigne une extension du conseil qui nomme les rôles à ajouter, plutôt qu'un verdict partiel. Il respecte le paramètre mode : le mode interactif marque une pause à chaque étape, tandis que le mode autopilot poursuit l'exécution jusqu'à l'obtention d'un artefact consolidé.
Il est sûr par conception. Il suspend l'exécution à une étape obligatoire de validation humaine, impossible à contourner, et ne la débloque jamais automatiquement. Un opérateur disposant du rôle d'application distinct Squad.Operate débloque une exécution suspendue via la route hors bande POST /admin/approve — jamais via tools/call — après quoi une interrogation par squad_status la fait progresser jusqu'à son terme. Les approbations sont consignées à des fins d'audit avec l'identité de l'approbateur et un horodatage, et leur portée est limitée au locataire.
squad_federate — sous-squads#
La couche de méta-orchestration de la fédération assure le routage entre les sous-squads nommés. Elle possède une étendue d'autorisation dédiée plutôt que de réutiliser Squad.Run, car un appelant autorisé à exécuter un squad n'est pas pour autant autorisé à piloter une fédération entière. Elle relève de la même classe de sécurité que squad_run et hérite donc du même point de contrôle et des mêmes prérequis de persistance de l'état d'exécution.
L'étape de découverte#
Les deux outils généralistes acceptent un niveau d'approfondissement facultatif discovery, qui reprend les arguments des invites /squad et /squad-federation. Ce paramètre pilote l'étape introduite dans hve-squad@0.15.0, dont la condition de déclenchement est inverse de celle du contrôle à l'entrée : ce dernier valide un artefact d'exigences lorsqu'il existe ; l'étape de découverte intervient lorsqu'il n'en existe aucun — lorsque la demande exprime un objectif plutôt qu'une tâche déjà définie — et fait émerger, par une réflexion collective, le document de cadrage que le contrôle à l'entrée valide ensuite.
discovery | Rôles invoqués | Résultat produit |
|---|---|---|
quick | analyst | le document de cadrage (choix recommandé par défaut) |
standard | designer (coach en design thinking), puis analyst | cadrage, axes de solution, document de cadrage |
deep | designer, puis challenger et experimenter, puis analyst | cadrage, axes de solution, objections, hypothèse la plus risquée, document de cadrage |
skip | aucun | un verdict Depth: skip consignant le refus de cette étape |
Cette étape est proposée, jamais automatique : un agent peut valider un document seul, mais pas mener seul une démarche d'idéation. Chaque rôle invoqué pose une question à la fois à l'utilisateur et s'arrête plutôt que d'inventer une réponse qu'il n'a pas pu obtenir ; seul analyst écrit un fichier, de sorte qu'une session produit un seul artefact.
Le mode distant n'exécute jamais cette étape. Une exécution intégrée n'a personne à interroger : cette étape n'est donc pas proposée et un paramètre discovery explicite est ignoré plutôt qu'appliqué — la charge utile de l'appelant sert alors d'entrée au contrôle à l'entrée. Une exécution sans surveillance est soumise à une validation, et non à une démarche d'idéation.
Routage des modèles#
Les deux outils généralistes acceptent aussi un mode routing facultatif, off, ranked ou manual, qui reprend l'argument ajouté par hve-squad@0.18.0 aux invites /squad et /squad-federation. Le coordinateur l'enregistre dans la ligne Model routing: de team.md jusqu'à sa prochaine modification. ranked choisit le modèle de chaque rôle selon son adéquation, d'après le catalogue de modèles de l'équipe ; manual vous demande de choisir parmi les modèles que votre hôte peut exécuter ; off invoque les rôles sans paramètre de modèle. Omettez-le pour conserver le mode enregistré. Le mode distant l'ignore, car une exécution intégrée utilise le modèle configuré par l'opérateur.
Outils utilitaires#
Ce sont des utilitaires de la couche transport, et non des intentions de routage : ils ne figurent donc pas dans le catalogue et ne sont pas soumis au contrôle des écarts. Chacun reste désactivé tant que l'opérateur n'active pas la fonctionnalité correspondante.
| Outil | Étendue d'autorisation | Activé par | Fonction |
|---|---|---|---|
squad_status | Squad.Run | pipeline | Interroge l'état d'une exécution lancée par l'appelant. Réutilise l'étendue d'autorisation d'exécution — vous pouvez consulter les exécutions que vous êtes autorisé à démarrer. |
squad_render_pptx | Squad.Render | SQUAD_MCP_ENABLE_RENDER_PPTX |
Génère un .pptx à partir du contenu YAML d'une présentation avec python-pptx, inclus dans l'image, et renvoie un lien SAS de délégation utilisateur à courte durée de validité, limité au locataire. Aucun appel au modèle ; le SAS n'est jamais consigné dans les journaux. |
squad_memory_read | Squad.Memory | SQUAD_MCP_ENABLE_MEMORY |
Lit la mémoire .copilot-tracking/squad/ du projet. |
squad_history | Squad.Memory | SQUAD_MCP_ENABLE_MEMORY |
Liste et lit l'arborescence .copilot-tracking écrite par une exécution — les artefacts de ce même projet. |
squad_memory_write | Squad.MemoryWrite | SQUAD_MCP_ENABLE_MEMORY |
Réécrit une entrée de mémoire par comparaison et échange (compare-and-swap). L'étendue d'autorisation est distincte de celle de la lecture : une autorisation de lecture ne permet donc aucune modification. |
squad_memory_sync | Squad.MemoryWrite | SQUAD_MCP_ENABLE_MEMORY |
Comparaison et échange par lot — enregistre tous les artefacts d'une exécution, chacun avec son propre jeton CAS. |
squad_business_plan | Squad.Business | SQUAD_MCP_ENABLE_BUSINESS_TOOLS |
Une invocation consultative unique d'un persona réel de l'ensemble d'agents, qui renvoie un plan métier structuré en sections. |
squad_backlog | Squad.Backlog | SQUAD_MCP_ENABLE_BUSINESS_TOOLS |
Produit un contrat de données de backlog en JSON validé — epics → user stories → tâches, ainsi qu'un tableau à plat workItems[]. |
Pourquoi squad_backlog renvoie du JSON plutôt que du texte libre#
Les connecteurs natifs Azure DevOps et Jira nécessitent un appel par élément de travail, avec des champs typés. Une transmission en texte libre oblige l'agent d'orchestration à interpréter l'anglais, principale source d'échec : un unique élément de travail démesuré, des critères d'acceptation perdus, des parents inventés. Avec le contrat JSON, l'agent parcourt workItems dans l'ordre, crée d'abord les parents et relie les enfants en faisant correspondre parentRef aux identifiants enregistrés — sans rapprochement par titre ni supposition. Le serveur valide et normalise le JSON du modèle et, s'il n'y parvient pas, signale l'échec de manière contrôlée.
La frontière de confiance reste inchangée. Aucun des deux outils métier n'écrit dans Azure DevOps ou Jira. Ce serveur produit le plan ; le connecteur natif certifié effectue chaque écriture via la connexion propre à l'utilisateur final, en appliquant l'authentification, les règles de prévention de la perte de données (DLP) et les limites de débit de ce connecteur.
Étendues d'autorisation : refus par défaut#
Chaque outil nécessite une étendue OAuth explicite ; sans elle, l'appel est refusé. Les étendues respectent le principe du moindre privilège dès leur conception — une autorisation de rendu n'accorde pas le droit de recherche, une autorisation de lecture de la mémoire n'accorde pas le droit d'y écrire, et aucune ne confère Squad.Operate, le rôle d'opérateur distinct qui permet de débloquer une exécution suspendue. La vérification de l'audience est indépendante de celle de l'étendue : un jeton émis pour une autre ressource est rejeté sans exception.